use clap::{Parser, Subcommand};

#[derive(Parser)]
#[command(name = "lab-raft")]
#[command(about = "A distributed service with Raft consensus", long_about = None)]
pub struct Cli {
    /// Configuration file path
    #[arg(long, default_value = "config/default.toml")]
    pub config: String,

    /// Server host
    #[arg(long)]
    pub host: Option<String>,

    /// Server port
    #[arg(long)]
    pub port: Option<u16>,

    /// Database path
    #[arg(long)]
    pub db_path: Option<String>,

    /// Peer addresses (format: host:port,host:port)
    #[arg(long)]
    pub peers: Option<String>,

    /// Gossip sync interval in seconds
    #[arg(long)]
    pub sync_interval: Option<u64>,
}
